using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace VtasMkt.General
{
    public partial class frmVerReporte : Form
    {

        #region Propiedades

        private String _rutaReporte;

        public String RutaReporte
        {
            get
            {
                return _rutaReporte;
            }
            set
            {
                _rutaReporte = value;
            }
        }

        #endregion

        #region Eventos del formulario

        public frmVerReporte()
        {
            InitializeComponent();

        }

        public frmVerReporte(Ventas.VentaAlojamiento.dsRegVentaAlojamiento ds)
        {
            InitializeComponent();
            MostrarReporteRegVentaAlojamiento(ds);
        }

        public frmVerReporte(Ventas.VentaAlojamiento.dsVentaAlojamiento ds)
        {
            InitializeComponent();
            MostrarReporteVentaAlojamiento(ds);
        }

        public frmVerReporte(Marketing.TipoEvento.dsTipoEvento ds)
        {
            InitializeComponent();
            MostrarReporteTipoEvento(ds);
        }

        public frmVerReporte(Marketing.Paquete.dsPaquete ds)
        {
            InitializeComponent();
            MostrarReportePaquete(ds);
        }

        public frmVerReporte(Marketing.Servicio.dsServicio ds)
        {
            InitializeComponent();
            MostrarReporteServicio(ds);
        }

        public frmVerReporte(Marketing.ServicioPaquete.dsServicioPaquete ds)
        {
            InitializeComponent();
            MostrarReporteServicioPaquete(ds);
        }

        public frmVerReporte(Marketing.Sala.dsSala ds)
        {
            InitializeComponent();
            MostrarReporteSala(ds);
        }

        public frmVerReporte(Marketing.Fidelizacion.dsProgramaFidelizacion ds)
        {
            InitializeComponent();
            mostrarReporteProgramaFidelizacion(ds);
        }

        public frmVerReporte(Marketing.Promociones.dsPromocion ds)
        {
            InitializeComponent();
            MostrarReportePromocion(ds);
        }
        public frmVerReporte(Ventas.Cliente.dsCliente ds)
        {
            InitializeComponent();
            MostrarReporteCliente(ds);
        }

        public frmVerReporte(Ventas.Comision.dsComisionVendedor ds)
        {
            InitializeComponent();
            MostrarReporteComisionVendedor(ds);
        }

        public frmVerReporte(Marketing.Fidelizacion.dsCartaProgramaFidelizacion ds)
        {
            InitializeComponent();
            MostrarCartaProgramaFidelizacion(ds);
        }

        // Al cargar el formulario
        private void frmVerReporte_Load(object sender, EventArgs e)
        {
        }

        #endregion

        #region Metodos privados

        // Valida que los parametros del visualizador de reportes
        private bool ValidaParametros()
        {
            if (_rutaReporte == "")
            {
                MessageBox.Show("No se indico la ruta del reporte.");
                return false;
            }

            // Si todo esta ok
            return true;
        }

        // Muestra el reporte segun los parametros

        private void MostrarReporteRegVentaAlojamiento(Ventas.VentaAlojamiento.dsRegVentaAlojamiento ds)
        {
            Ventas.VentaAlojamiento.rptRegVentaAlojamiento rptRegVtaAloj = new Ventas.VentaAlojamiento.rptRegVentaAlojamiento();
            rptRegVtaAloj.SetDataSource(ds);
            crptViewer.ReportSource = rptRegVtaAloj;
        }

        private void MostrarReportePaquete(Marketing.Paquete.dsPaquete ds)
        {
            Marketing.Paquete.rptPaquete rptPaquete = new Marketing.Paquete.rptPaquete();
            rptPaquete.SetDataSource(ds);
            crptViewer.ReportSource = rptPaquete;
        }

        private void MostrarReporteServicio(Marketing.Servicio.dsServicio ds)
        {
            Marketing.Servicio.rptServicio rptServicio = new Marketing.Servicio.rptServicio();
            rptServicio.SetDataSource(ds);
            crptViewer.ReportSource = rptServicio;
        }

        private void MostrarReporteServicioPaquete(Marketing.ServicioPaquete.dsServicioPaquete ds)
        {
            Marketing.ServicioPaquete.rptServicioPaquete rptServicioPaquete = new Marketing.ServicioPaquete.rptServicioPaquete();
            rptServicioPaquete.SetDataSource(ds);
            crptViewer.ReportSource = rptServicioPaquete;
        }

        private void MostrarReporteSala(Marketing.Sala.dsSala ds)
        {
            Marketing.Sala.rptSala rptSala = new Marketing.Sala.rptSala();
            rptSala.SetDataSource(ds);
            crptViewer.ReportSource = rptSala;
        }

        private void MostrarReporteCliente(Ventas.Cliente.dsCliente ds)
        {
            Ventas.Cliente.rptCliente rptClient = new Ventas.Cliente.rptCliente();
            rptClient.SetDataSource(ds);
            crptViewer.ReportSource = rptClient;
        }

        private void mostrarReporteProgramaFidelizacion(Marketing.Fidelizacion.dsProgramaFidelizacion ds)
        { 
            Marketing.Fidelizacion.rptProgramaFidelizacion rptProg = new VtasMkt.Marketing.Fidelizacion.rptProgramaFidelizacion();
            rptProg.SetDataSource(ds);
            crptViewer.ReportSource = rptProg;
        }

        private void MostrarReportePromocion(Marketing.Promociones.dsPromocion ds)
        {
            Marketing.Promociones.rptPromocion rptProm = new VtasMkt.Marketing.Promociones.rptPromocion();
            rptProm.SetDataSource(ds);
            crptViewer.ReportSource = rptProm;
        }

        private void MostrarReporteComisionVendedor(Ventas.Comision.dsComisionVendedor ds)
        {
            Ventas.Comision.rptComisionVendedor rptComision = new VtasMkt.Ventas.Comision.rptComisionVendedor();
            rptComision.SetDataSource(ds);
            crptViewer.ReportSource = rptComision;
        }

        private void MostrarReporteTipoEvento(Marketing.TipoEvento.dsTipoEvento ds)
        {
            Marketing.TipoEvento.rptTipoEvento rptClient = new Marketing.TipoEvento.rptTipoEvento();
            rptClient.SetDataSource(ds);
            crptViewer.ReportSource = rptClient;
        }

        private void MostrarReporteVentaAlojamiento(Ventas.VentaAlojamiento.dsVentaAlojamiento ds)
        {
            Ventas.VentaAlojamiento.rptVentaAlojamiento rptVtaAloj = new Ventas.VentaAlojamiento.rptVentaAlojamiento();
            rptVtaAloj.SetDataSource(ds);
            crptViewer.ReportSource = rptVtaAloj;
        }

        private void MostrarCartaProgramaFidelizacion(Marketing.Fidelizacion.dsCartaProgramaFidelizacion ds)
        {
            Marketing.Fidelizacion.rptCartaProgramaFidelizacion rptCarta = new VtasMkt.Marketing.Fidelizacion.rptCartaProgramaFidelizacion();
            rptCarta.SetDataSource(ds);
            crptViewer.ReportSource = rptCarta;
        }

        #endregion             

       

    }
}